Skip to main content

ES9 ES2018

字符串

放松对标签模板里字符串转义的限制:遇到不合法的字符串转义返回undefined,并且从raw上可获取原字符串


对象

扩展运算符"..."

转换对象为用逗号分隔的参数序列({ ...obj },相当于rest/spread参数的逆运算)

应用场景:


Async

异步迭代器 await ... of

await可以和for...of循环一起使用,以串行的方式运行异步操作

async function process(array) {
for await (let i of array) {
// doSomething(i);
}
}

正则

命名捕获组

const reg = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
const match = reg.exec('2021-02-23');

反向断言

(?=p)(?<=p)  p 前面(位置)、p 后面(位置)
(?!p)(?<!p>) 除了 p 前面(位置)、除了 p 后面(位置)

dotAll模式

正则表达式中点.匹配除回车外的任何单字符,标记s改变这种行为,允许行终止符的出现

/hello.world/.test('hello\nworld'); // false

Promise

Promise.finally()

Promise.resolve().then().catch(e => e).finally();